/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Presente;

import BancoDados.BancoDados;
import Entidade.CidadeModel;
import Entidade.ClienteModel;
import Entidade.EnderecoModel;
import Enum.UF;
import Pesistencia.CidadePersistencia;
import Pesistencia.ClientePersistenicia;
import Pesistencia.EnderencoPersistencia;
import View.CadastrarClienteView;
import View.MainVendedorView;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JOptionPane;

/**
 *
 * @author Thalyta
 */
public final class CadastrarClientePresente {
    
    private BancoDados banco = new BancoDados();
    private ClientePersistenicia clientes = new ClientePersistenicia(banco);
    private CidadePersistencia cidades = new CidadePersistencia(banco);
    private EnderencoPersistencia endrecos = new EnderencoPersistencia(banco);
    private CadastrarClienteView view = new CadastrarClienteView();
    //private EnderencoPersistencia enderecos = new EnderencoPersistencia(banco);
   // private CidadePersistencia cidades = new CidadePersistencia(banco);
  public  CadastrarClientePresente(CadastrarClienteView vie) {
            
     
      view = vie ;
       carregacombox();  
      view.getBtncancelar().addActionListener(new ActionListener() {
         
          
           @Override
           public void actionPerformed(ActionEvent e) {
              cancelar();
           }
       });
       
       view.getBtnsalvar().addActionListener(new ActionListener() {

           @Override
           public void actionPerformed(ActionEvent e) {
              salvar();
           }

          
       }); 
         view.setLocationRelativeTo(null);
        view.setVisible(true);
       view.getBtnEditar().addActionListener(new ActionListener() {

          @Override
          public void actionPerformed(ActionEvent e) {
             editar();
              //throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
          }
      });
    }
 public void cancelar (){
view.setVisible(false);

    }
    
 public void salvar(){
  int  codigo1;
     int codigo = 0;
     
 try {
            if (clientes.buscar(clientes.recuperarUltimoCodigo() + 1) != null) {
                    throw new Exception("Cliente ja cadastrado- iiiih ferrou!");
            } else {
                
               if(cidades.buscarNome(view.getTxtcidade().getText()) == null){
                   
                    codigo = cidades.recuperarUltimoCodigo() + 1 ;
                    CidadeModel cidadee = new CidadeModel(codigo,view.getTxtcidade().getText(),view.getCBXestado().getSelectedItem().toString());
                    cidades.cadastrar(cidadee);
              }
              else {
                    codigo = cidades.buscarNome1(view.getTxtcidade().getText());
               }
               
               if(endrecos.buscarNome(view.getTxtrua().getText()) == null){
                    codigo1 = endrecos.recuperarUltimoCodigo() + 1 ;
                    EnderecoModel  endreco = new EnderecoModel(codigo1, codigo, view.getTxtrua().getText(), Integer.parseInt(view.getTxtnumero().getText()),view.getCep().getText());
                    endrecos.cadastrar(endreco);
               }
              else {
                    codigo1 = endrecos.buscarNome1(view.getTxtrua().getText());
               }
               String d = view.getTxtdatanascimento().getText();
          
               ClienteModel cliente = new  ClienteModel(clientes.recuperarUltimoCodigo() + 1,view.getTxtnome().getText(), view.getCbmsexo().getSelectedItem().toString(),codigo1,d,view.getTxtcpf().getText());
               clientes.cadastrar(cliente);
            
           }
            
            
        } catch (Exception e) {
            JOptionPane.showMessageDialog(view, e.getMessage());
        }
      
        view.setVisible(false);
 }   
 
  public void carregacombox(){
      UF[] ts = UF.values();
      
      for(UF tipos : ts){ 
         view.getCBXestado().addItem(tipos.toString());
      }
    
      
  }
  public void editar()
  {
     /*ClienteModel cliente = new ClienteModel();
     CidadeModel cidade = new CidadeModel();
     EnderecoModel endereco = new EnderecoModel();
     cliente.setCpf(view.getTxtcpf().getText());
     cliente.setNome(view.getTxtnome().getText());
     cliente.setSexo(view.getCbmsexo().getSelectedItem().toString());  
     clientes.editar(cliente);
     cidades.cadastrar(cidade);
     endrecos.cadastrar(endereco);
     view.setVisible(false);*/
  }
}
